package com.ruoyi.system.mapper;

import com.ruoyi.system.domain.Column;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface ColumnMapper {
    // 新增栏目
    int insertColumn(Column column);
    // 更新栏目
    int updateColumn(Column column);
    // 逻辑删除栏目
    int deleteColumnById(Long columnId);
    // 查询栏目列表
    List<Column> selectColumnList(Column column);
    // 根据ID查询栏目
    Column selectColumnById(Long columnId);
    // 校验栏目名称唯一性
    Column checkColumnNameUnique(String columnName);
    // 更新栏目可见性（用于子栏目）
    void updateColumnVisibleColumnId(
//    @Param为sql语句赋值服务
            @Param("columnId") Long columnId,
            @Param("visible") String visible,
            @Param("updateBy") String updateBy
    );
    // 查询父栏目下所有子栏目ID
    List<Long> selectChildColumnIdsByParentId(Long parentId);
    // 根据父ID查询子栏目列表
    Integer hasArticleUnderColumn(Long columnId);
    List<Long> selectChildColumnIds(Long columnId);
    int deleteById(Long columnId);

    List<Column> selectChildColumnsByParentId(Long parentId);

    List<Long> selectAllChildColumnIds(Long columnId);
}
